package com.sww.pj.sys.dao;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.sww.pj.common.pojo.CheckBox;
import com.sww.pj.sys.pojo.Role;
import com.sww.pj.sys.pojo.RoleMenu;

@Mapper
public interface RoleDao {
	@Select("select id,name from sww_roles")
	List<CheckBox> findRoles();
	/**
	 * 	根据角色id删除角色信息
	 * @param id
	 * @return
	 */
	@Delete("delete from sww_roles where id=#{id}")
	int deleteObject(Integer id);
	
	
	int updateObject(Role role);
	
	/**
	 * 	根据角色id嵌套查询实现数据回显
	 * @param id
	 * @return
	 */
	RoleMenu findObjectById(Integer id);
	
	/**
	 *	保存角色自身信息到sww_roles表
	 * @param 角色信息
	 * @return	返回角色自身信息
	 */
	@Insert("insert into sww_roles (name,note,createdUser,modifiedUser,createdTime,modifiedTime) values (#{name},#{note},#{createdUser},#{modifiedUser},now(),now())")
	@Options(useGeneratedKeys = true, keyProperty = "id")
	int insertObject(Role role);
	
	/**
	 * 	查询角色表中有多少条数据
	 * @param username 角色名
	 * @return 统计的个数
	 */
	long getRowCount(@Param("name")String name);

	/**
	 * 	基于条件查询当前页数据
	 * @param username 角色名
	 * @param starIndex	起始位置
	 * @param pagesize	页面大小
	 * @return 查询到的记录
	 */
	List<Role> findPageObjects(@Param("name")String name,
			@Param("startIndex")Long starIndex,
			@Param("pageSize")Integer pageSize);
}